package dao;


import java.util.Date;
import java.util.List;

import model.entities.Funcionario;


import sefaz.util.Excecao.DAOException;

public interface IFuncionarioDAO {
	
	/**
	* Metodo que atualiza os dados de um determinado funcionario
	* @param objeto funcionario. O funcionario a ser alterado no banco de dados
	* @throws Exception
	*/	
	void atualizar(Funcionario funcionario) throws DAOException, Exception;
	
	/**
	* Consulta o funcionario especifico.
	* @param Objeto funcionario. Utilza a matricula do funcionario a ser consultado
	* @return Objeto contendo o funcionario informado.
	* @throws Exception
	*/
	Funcionario pesquisar(Funcionario funcionario) throws DAOException, Exception;
	
	/**
	* Consulta todos os funcionarios cadastrados no banco de dados.
	* @return Lista contendo todos os funcionarios cadastrados no banco de dados.
	* @throws Exception
	*/
	List pesquisarTodosFuncionario() throws DAOException, Exception;

	/**
	 * Consulta todos os funcionarios que faltaram o trabalho em determinada data.
	 * @param data. Data para a pesquisa.
	 * @return Lista contendo todos os funcionarios que faltaram o trabalho em determinada data.
	 * @throws DAOException, Exception;
	 */
	 List pesquisarFaltosos(Date data) throws DAOException, Exception;

}
